/* 
 * AlaVerificaNullIdRule.java
 * 
 * Data de criação: 12/10/2010
 * 
 * O2 SOLUTIONS - SOLUÇÕES EM TECNOLOGIA DA INFORMAÇÃO. 
 *
 */
package br.com.o2solutions.siso.business.rule.ala;

import org.springframework.stereotype.Component;

import br.com.o2solutions.core.exception.BusinessException;
import br.com.o2solutions.core.exception.enumerator.ExceptionScope;
import br.com.o2solutions.core.service.rule.Rule;
import br.com.o2solutions.siso.integration.entidade.Ala;
import br.com.o2solutions.util.assertion.Assert;

/**
 * Classe responsável por verificar se a entidade {@link Ala} está nula ou com o
 * Id nulo.
 * 
 * @author osvaldeir
 * @since 12/10/2010
 * 
 */
@Component("alaVerificaNullIdRule")
public class AlaVerificaNullIdRule implements Rule<Ala> {

	/**
	 * {@inheritDoc} Verifica se a entidade passada está nula ou com o seu id
	 * nulo. Caso uma dessas afirmações seja verdadeira é lançada uma
	 * {@link BusinessException} informando a quebra da regra negocial.Para a
	 * entidade nula é lançada a chave <b>error.ala.null</b> e para o id nulo é
	 * lançada a chave <b>error.ala.id.null</b>
	 */
	@Override
	public void check(Ala entity) throws BusinessException {
		Assert.notNull(entity, new BusinessException("A Ala não pode ser nula",
				"error.ala.null", ExceptionScope.BUSINESS_VALIDATION));
		Assert.notNull(entity.getId(), new BusinessException(
				"O Id da Ala não pode ser nulo", "error.ala.id.null",
				ExceptionScope.BUSINESS_VALIDATION));
	}

}
